//1.引入express模块
const express = require('express')
//2.创建框架核心app对象
const app = express();
const expressJwt = require('express-jwt');
const setting = require('./config/setting')
const verify = require('./config/verify')
//3.路由
app.get('/user',function(req,res,next){
    //express响应数据方法
    //end      -响应字符串
    //send     -响应字符串（自动识别数据类型）
    //render   -响应字符串（可以获取指定文件字符串并响应，缺点：得声明模板引擎）
    console.log(req.headers);
    var token = req.headers['Authorization'];
    if(token == undefined){
        return res.status(404).json({
            code: 404,
            message: '当前用户未登录',
        })
    }else{
        verify.getToken(token).then((data)=> {
            req.data = data;
            return next();
        }).catch((error)=>{
            return next();
        })
    }
})
// console.log(setting.generatekey());
app.get('/login', (req,res) => {
    verify.setToKen(2).then(token => {
        return res.status(200).json({
            code: 0,
            message: '登录成功',
            token,
            data: Object.assign({name:'e[0]'.name,username:'0',userid:'_id'})
        })
    })
})
// 验证token是否过期规定哪些路由不需要验证
app.use(expressJwt({
    secret:setting.token.signKey,
    algorithms:['HS256']
}).unless({
    path:setting.token.unRoute // 除了这个地址，其余都需要验证
}))
app.listen('8080',function(){
    console.log('服务器启动成功,请访问：http://localhost:8080')
})